package com.fawkes.basic.a1java.lamda;

import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;

/***
 * @author: hels
 * @description: java8中新增了时间类
 * LocalDate  非时区敏感  当前日期
 * LocalTime  非时区敏感  当前时间
 * LocalDateTime 非时区敏感   当前日期时间
 * ZonedDateTime 时区敏感    用于实际发生时间描述
 *
 * 时间格式
 * DateTimeFormatter
 *
 * 复杂时间操作：对于日期的操作比较简单，但是有些时候要面临更复杂的时间操作，
 * 比如将时间调到下一个工作日，或者是下个月的最后一天，这时候可以使用 with() 方法的另一个重载方法，
 * 它接收一个TemporalAdjuster参数，可以使更加灵活的调整日期：
 *
 * 静态导入：静态方法可以直接使用 import static java.time.temporal.TemporalAdjusters.*;
 * @date: 2022-12-2 15:37
 **/
public class MyDateAndTime {
    public static void main(String[] args) {
        LocalDate curDate = LocalDate.now();
        LocalDate oldDate = LocalDate.of(2022, 11, 5);
        System.out.println("时间是不可变的：" + curDate);
        System.out.println(oldDate);
//      修改日期
        System.out.println(curDate.withYear(22));
//        获取复杂日期
        System.out.println("=====");
//        返回日期月最后一天
        System.out.println(curDate.with(TemporalAdjusters.lastDayOfMonth()));
//        返回当月第二个星期四
        System.out.println(curDate.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.THURSDAY)));
        String string = LocalDate.parse("2022-12-14").plusDays(1L).toString();
        System.out.println(string);

    }
}
